#ifndef VIDEO_H
#define VIDEO_H

#include <stdbool.h>

// 视频模块错误码
#define VIDEO_SUCCESS        0
#define VIDEO_ERROR_INIT     -1
#define VIDEO_ERROR_START    -2
#define VIDEO_ERROR_STOP     -3
#define VIDEO_ERROR_CONFIG   -4

// 视频编码格式
enum video_codec {
    VIDEO_CODEC_H264,
    VIDEO_CODEC_H265,
    VIDEO_CODEC_MJPEG
};

// 视频分辨率
enum video_resolution {
    VIDEO_RES_720P,
    VIDEO_RES_1080P,
    VIDEO_RES_4K
};

// 视频参数配置结构体
typedef struct {
    enum video_codec codec;
    enum video_resolution resolution;
    int frame_rate;
    int bit_rate;
    char save_path[128];
} video_config_t;

/**
 * @brief 初始化视频模块
 * @return 成功返回VIDEO_SUCCESS，失败返回错误码
 */
int video_init(void);

/**
 * @brief 清理视频模块资源
 */
void video_cleanup(void);

/**
 * @brief 开始录像
 * @param config 视频配置参数
 * @return 成功返回VIDEO_SUCCESS，失败返回错误码
 */
int video_start_recording(video_config_t *config);

/**
 * @brief 停止录像
 * @return 成功返回VIDEO_SUCCESS，失败返回错误码
 */
int video_stop_recording(void);

/**
 * @brief 获取当前录像状态
 * @return 正在录像返回true，否则返回false
 */
bool video_is_recording(void);

/**
 * @brief 设置视频参数
 * @param config 视频配置参数
 * @return 成功返回VIDEO_SUCCESS，失败返回错误码
 */
int video_set_config(video_config_t *config);

#endif /* VIDEO_H */